<?php
require_once 'common/config.php';
require_once 'common/functions.php';

// 检查登录状态
check_login();

$db = db_connect();

// 获取参数
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$status = isset($_GET['status']) ? intval($_GET['status']) : 0;

// 验证参数
if (!$id || !in_array($status, [1, 2, 3])) {
    redirect('course_bookings.php', '无效的参数', 'error');
}

try {
    // 开始事务
    $db->beginTransaction();
    
    // 更新预约状态
    $stmt = $db->prepare("UPDATE bookings SET status = ? WHERE id = ?");
    $stmt->execute([$status, $id]);
    
    // 如果是取消预约，需要减少课程的已预约人数
    if ($status == 3) {
        $stmt = $db->prepare("UPDATE courses c 
                             SET c.booked_count = c.booked_count - 1 
                             WHERE c.id = (SELECT course_id FROM bookings WHERE id = ?)");
        $stmt->execute([$id]);
    }
    
    // 提交事务
    $db->commit();
    
    $message = $status == 1 ? '预约已确认' : ($status == 2 ? '预约已完成' : '预约已取消');
    redirect('course_bookings.php', $message);
} catch (Exception $e) {
    // 回滚事务
    $db->rollBack();
    redirect('course_bookings.php', '系统错误：' . $e->getMessage(), 'error');
}
?> 